﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DAOClinica;

namespace GerenciadorDeConsultas
{
    public partial class FormPrincipal : Form
    {
        public FormPrincipal()
        {
            InitializeComponent();            
            gridPaciente.DataSource = new DAO().listarPacientes();
            gridMedicos.DataSource = new DAO().listarMedicos();
            cmbMedicos.DataSource = new DAO().listarMedicos();
            gridConsultas.DataSource = new DAO().listarConsultas();
        }

        private void btSalvar_Click(object sender, EventArgs e)
        {
            if (new ValidadorCPF.CPFWSClient().validarCPF(txtCpf.Text))
            {
                clinicaDataSet.PacienteRow paciente = new clinicaDataSet.PacienteDataTable().NewPacienteRow();
                paciente.nome = txtNome.Text;
                paciente.cpf = txtCpf.Text;
                paciente.email = txtEmail.Text;
                paciente.endereco = txtEndereco.Text;
                paciente.telefone = txtTelefone.Text;
                paciente.plano = txtPlano.Text;

                new DAO().inserirPaciente(paciente);
                gridPaciente.DataSource = new DAO().listarPacientes();
            }
            else
            {
                MessageBox.Show("CPF Inválido. Paciente não cadastrado.");
            }
        }

        private void btSalvarPacientes_Click(object sender, EventArgs e)
        {
            new DAO().alterarPaciente((clinicaDataSet.PacienteDataTable)gridPaciente.DataSource);
        }

        private void btBuscarPaciente_Click(object sender, EventArgs e)
        {
            gridPaciente.DataSource = new DAO().listarPacientes(txtBuscaCpf.Text);
        }

        private void btListarTodosPacientes_Click(object sender, EventArgs e)
        {
            gridPaciente.DataSource = new DAO().listarPacientes();
        }



        private void btSalvarMedicos_Click(object sender, EventArgs e)
        {
            new DAO().alterarMedico((clinicaDataSet.MedicoDataTable)gridMedicos.DataSource);
        }

        private void btListarTodosMedicos_Click(object sender, EventArgs e)
        {
            gridMedicos.DataSource = new DAO().listarMedicos();
        }

        private void btBuscaMedico_Click(object sender, EventArgs e)
        {
            gridMedicos.DataSource = new DAO().listarMedicos(txtBuscaCpf.Text);
        }

        private void btCadastrarMedico_Click(object sender, EventArgs e)
        {
            clinicaDataSet.MedicoRow medico = new clinicaDataSet.MedicoDataTable().NewMedicoRow();
            medico.Nome = txtNomeMedico.Text;
            medico.CRM = txtCrmMedico.Text;
            medico.Especialidade = cbxEspecialidadeMedico.SelectedItem.ToString();
            string turno = "";
            if (ckbMatutino.Checked)
                turno = turno + "Matutino;";
            if (ckbVespertino.Checked)
                turno = turno + "Vespertino;";

            medico.Turno = turno;
            new DAO().inserirMedico(medico);
            gridMedicos.DataSource = new DAO().listarMedicos();
        }

        private void btBuscarCPFMarcarConsulta_Click(object sender, EventArgs e)
        {
            clinicaDataSet.PacienteDataTable pacientes = new DAO().listarPacientes(txtCPFBuscaMarcarConsulta.Text);
            if (pacientes.Count > 0)
            {
                txtNomePacienteMarcarConsulta.Text = pacientes[0].nome;
            }
            else
            {
                txtNomePacienteMarcarConsulta.Text = "";
                MessageBox.Show("Nenhum paciente encontrado com este CPF.");
            }
        }

        
        private void button1_Click(object sender, EventArgs e)
        {
            clinicaDataSet.ConsultaRow consulta = new clinicaDataSet.ConsultaDataTable().NewConsultaRow();
            consulta.cpf = txtCPFBuscaMarcarConsulta.Text;
            consulta.crm = cmbMedicos.SelectedValue.ToString();
            DateTime data = new DateTime(
                datePicker.Value.Year,
                datePicker.Value.Month,
                datePicker.Value.Day,
                timePicker.Value.Hour,
                timePicker.Value.Minute,
                0);
            consulta.dataHora = data;
            new DAO().inserirConsulta(consulta);
        }

        private void button3_Click(object sender, EventArgs e)
        {
            gridConsultas.DataSource = new DAO().listarConsultas();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            new DAO().alterarConsulta((clinicaDataSet.ConsultaDataTable)gridConsultas.DataSource);
        }
    }
}
